<?php
/*
 * @ https://EasyToYou.eu - IonCube v11 Decoder Online
 * @ PHP 7.2 & 7.3
 * @ Decoder version: 1.1.6
 * @ Release: 10/08/2022
 */

// Decoded file for php version 71.
class PHPExcel_Worksheet_AutoFilter_Column_Rule
{
    private $parent;
    private $ruleType = "filter";
    private $value = "";
    private $operator = "equal";
    private $grouping = "";
    private static $ruleTypes = ["filter", "dateGroupItem", "customFilter", "dynamicFilter", "top10Filter"];
    private static $dateTimeGroups = ["year", "month", "day", "hour", "minute", "second"];
    private static $dynamicTypes = ["yesterday", "today", "tomorrow", "yearToDate", "thisYear", "thisQuarter", "thisMonth", "thisWeek", "lastYear", "lastQuarter", "lastMonth", "lastWeek", "nextYear", "nextQuarter", "nextMonth", "nextWeek", "M1", "M2", "M3", "M4", "M5", "M6", "M7", "M8", "M9", "M10", "M11", "M12", "Q1", "Q2", "Q3", "Q4", "aboveAverage", "belowAverage"];
    private static $operators = ["equal", "notEqual", "greaterThan", "greaterThanOrEqual", "lessThan", "lessThanOrEqual"];
    private static $topTenValue = ["byValue", "byPercent"];
    private static $topTenType = ["top", "bottom"];
    const AUTOFILTER_RULETYPE_FILTER = "filter";
    const AUTOFILTER_RULETYPE_DATEGROUP = "dateGroupItem";
    const AUTOFILTER_RULETYPE_CUSTOMFILTER = "customFilter";
    const AUTOFILTER_RULETYPE_DYNAMICFILTER = "dynamicFilter";
    const AUTOFILTER_RULETYPE_TOPTENFILTER = "top10Filter";
    const AUTOFILTER_RULETYPE_DATEGROUP_YEAR = "year";
    const AUTOFILTER_RULETYPE_DATEGROUP_MONTH = "month";
    const AUTOFILTER_RULETYPE_DATEGROUP_DAY = "day";
    const AUTOFILTER_RULETYPE_DATEGROUP_HOUR = "hour";
    const AUTOFILTER_RULETYPE_DATEGROUP_MINUTE = "minute";
    const AUTOFILTER_RULETYPE_DATEGROUP_SECOND = "second";
    const AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY = "yesterday";
    const AUTOFILTER_RULETYPE_DYNAMIC_TODAY = "today";
    const AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW = "tomorrow";
    const AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE = "yearToDate";
    const AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR = "thisYear";
    const AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER = "thisQuarter";
    const AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH = "thisMonth";
    const AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK = "thisWeek";
    const AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR = "lastYear";
    const AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER = "lastQuarter";
    const AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH = "lastMonth";
    const AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK = "lastWeek";
    const AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR = "nextYear";
    const AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER = "nextQuarter";
    const AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH = "nextMonth";
    const AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK = "nextWeek";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_1 = "M1";
    const AUTOFILTER_RULETYPE_DYNAMIC_JANUARY = "M1";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_2 = "M2";
    const AUTOFILTER_RULETYPE_DYNAMIC_FEBRUARY = "M2";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_3 = "M3";
    const AUTOFILTER_RULETYPE_DYNAMIC_MARCH = "M3";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_4 = "M4";
    const AUTOFILTER_RULETYPE_DYNAMIC_APRIL = "M4";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_5 = "M5";
    const AUTOFILTER_RULETYPE_DYNAMIC_MAY = "M5";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_6 = "M6";
    const AUTOFILTER_RULETYPE_DYNAMIC_JUNE = "M6";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_7 = "M7";
    const AUTOFILTER_RULETYPE_DYNAMIC_JULY = "M7";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_8 = "M8";
    const AUTOFILTER_RULETYPE_DYNAMIC_AUGUST = "M8";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_9 = "M9";
    const AUTOFILTER_RULETYPE_DYNAMIC_SEPTEMBER = "M9";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_10 = "M10";
    const AUTOFILTER_RULETYPE_DYNAMIC_OCTOBER = "M10";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_11 = "M11";
    const AUTOFILTER_RULETYPE_DYNAMIC_NOVEMBER = "M11";
    const AUTOFILTER_RULETYPE_DYNAMIC_MONTH_12 = "M12";
    const AUTOFILTER_RULETYPE_DYNAMIC_DECEMBER = "M12";
    const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_1 = "Q1";
    const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_2 = "Q2";
    const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_3 = "Q3";
    const AUTOFILTER_RULETYPE_DYNAMIC_QUARTER_4 = "Q4";
    const AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE = "aboveAverage";
    const AUTOFILTER_RULETYPE_DYNAMIC_BELOWAVERAGE = "belowAverage";
    const AUTOFILTER_COLUMN_RULE_EQUAL = "equal";
    const AUTOFILTER_COLUMN_RULE_NOTEQUAL = "notEqual";
    const AUTOFILTER_COLUMN_RULE_GREATERTHAN = "greaterThan";
    const AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL = "greaterThanOrEqual";
    const AUTOFILTER_COLUMN_RULE_LESSTHAN = "lessThan";
    const AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL = "lessThanOrEqual";
    const AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE = "byValue";
    const AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT = "byPercent";
    const AUTOFILTER_COLUMN_RULE_TOPTEN_TOP = "top";
    const AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM = "bottom";
    public function __construct(PHPExcel_Worksheet_AutoFilter_Column $pParent = NULL)
    {
        $this->parent = $pParent;
    }
    public function getRuleType()
    {
        return $this->ruleType;
    }
    public function setRuleType($pRuleType = self::AUTOFILTER_RULETYPE_FILTER)
    {
        if(!in_array($pRuleType, self::$ruleTypes)) {
            throw new PHPExcel_Exception("Invalid rule type for column AutoFilter Rule.");
        }
        $this->ruleType = $pRuleType;
        return $this;
    }
    public function getValue()
    {
        return $this->value;
    }
    public function setValue($pValue = "")
    {
        if(is_array($pValue)) {
            $grouping = -1;
            foreach ($pValue as $key => $value) {
                if(!in_array($key, self::$dateTimeGroups)) {
                    unset($pValue[$key]);
                } else {
                    $grouping = max($grouping, array_search($key, self::$dateTimeGroups));
                }
            }
            if(count($pValue) == 0) {
                throw new PHPExcel_Exception("Invalid rule value for column AutoFilter Rule.");
            }
            $this->setGrouping(self::$dateTimeGroups[$grouping]);
        }
        $this->value = $pValue;
        return $this;
    }
    public function getOperator()
    {
        return $this->operator;
    }
    public function setOperator($pOperator = self::AUTOFILTER_COLUMN_RULE_EQUAL)
    {
        if(empty($pOperator)) {
            $pOperator = "equal";
        }
        if(!in_array($pOperator, self::$operators) && !in_array($pOperator, self::$topTenValue)) {
            throw new PHPExcel_Exception("Invalid operator for column AutoFilter Rule.");
        }
        $this->operator = $pOperator;
        return $this;
    }
    public function getGrouping()
    {
        return $this->grouping;
    }
    public function setGrouping($pGrouping = NULL)
    {
        if($pGrouping !== NULL && !in_array($pGrouping, self::$dateTimeGroups) && !in_array($pGrouping, self::$dynamicTypes) && !in_array($pGrouping, self::$topTenType)) {
            throw new PHPExcel_Exception("Invalid rule type for column AutoFilter Rule.");
        }
        $this->grouping = $pGrouping;
        return $this;
    }
    public function setRule($pOperator = self::AUTOFILTER_COLUMN_RULE_EQUAL, $pValue = "", $pGrouping = NULL)
    {
        $this->setOperator($pOperator);
        $this->setValue($pValue);
        if($pGrouping !== NULL) {
            $this->setGrouping($pGrouping);
        }
        return $this;
    }
    public function getParent()
    {
        return $this->parent;
    }
    public function setParent(PHPExcel_Worksheet_AutoFilter_Column $pParent = NULL)
    {
        $this->parent = $pParent;
        return $this;
    }
    public function __clone()
    {
        $vars = get_object_vars($this);
        foreach ($vars as $key => $value) {
            if(is_object($value)) {
                if($key == "parent") {
                    $this->{$key} = NULL;
                } else {
                    $this->{$key} = clone $value;
                }
            } else {
                $this->{$key} = $value;
            }
        }
    }
}

?>